Real Time Bit Rate Switching for Internet Protocol Television

ABSTRACT

A method, apparatus and computer program product are provided for delivering television programming to a subscriber. In one aspect the method includes receiving one or more channels of program content, and encoding each channel a plurality of times, each time at a different rate producing multiple rate encoded signals for each channel. The method can further include transmitting the multiple rate encoded signals to a central office over a network, determining an available bandwidth of a downstream link to a subscriber and a current bit rate available for transmission to the subscriber. The method can further include selecting a best available bit rate from the multiple rate encoded signals for a requested channel and transmitting the selected rate encoded signal to the subscriber.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation and claims the benefit of priority under 35 U.S.C. Section 120 of U.S. application Ser. No. 11/203,068, filed Aug. 11, 2005. The disclosure of the prior application is considered part of and is incorporated by reference in the disclosure of this application.

BACKGROUND

The following disclosure relates to network communication.

Delivery of broadcast television signals has advanced over the years from classical over-air delivery channels to cable, satellite, and telephone delivery systems. As the delivery mechanisms have changed, so have the challenges in delivering the content efficiently to the consumers. Delivery of the content is constrained by resources of the delivery systems including bandwidth limitations of the communication channels used. As content has expanded to include pay-per-view services, digital music and a myriad of new channel offerings, the challenges to the delivery systems to provide such content efficiently have grown. Relatively recently, additional system level pressure has been added due to the demand from the consumer for higher quality content delivery (e.g., high definition television, HDTV).

Most delivery systems have inherent bandwidth limitations that limit the amount of content that can be delivered. The bandwidth limitations can be resource dependent or channel dependent, in that limitations may exist in each end of the delivery system at a transmit or receive side (e.g., finite amount of data that is able to be transmitted or received by the transmitting or receiving devices), or in the communication channel itself (e.g., bandwidth at a given frequency for broadcast, or downlink bandwidth provided in a digital subscriber line (DSL) system).

In the last 10 years, the existing telephone company infrastructure system (hereinafter the “Telco System”) has been utilized to deliver content to users. DSL systems have been made available to provide high speed internet access to consumers. The Telco System has inherent bandwidth limitations in the amount of data that can be delivered over the copper paths prevalent in the system. These limitations have limited the effectiveness of using the Telco System to deliver high bandwidth content over the existing system. With the advent of advanced codec technology, the Telco System is now a viable delivery system for standard definition and high definition video and audio services. As a practical matter, other delivery systems (satellite for example) are not as constrained in terms of bandwidth. Further consumer applications that necessitate even more bandwidth, for example watching and recording different channels, have made the Telco System less desirable overall as a delivery mechanism.

SUMMARY

In one aspect, a method is provided for delivering television programming to a subscriber that includes receiving one or more channels of program content, and encoding each channel a plurality of times, each time at a different rate producing multiple rate encoded signals for each channel. The method further includes transmitting the multiple rate encoded signals to a central office over a network, determining an available bandwidth of a downstream link to a subscriber and a current bit rate available for transmission to the subscriber. The method further includes selecting a best available bit rate from the multiple rate encoded signals for a requested channel and transmitting the selected rate encoded signal to the subscriber.

Aspects of the invention can include one or more of the following features. The step of determining a current bit rate available for transmission to the subscriber can include determining one or more additional signals that are to be transmitted to the subscriber and a combination of best available rate encoded signals for the one or more additional signals and the requested channel and combining the best available rate encoded signals in a stream for output to the subscriber. The step of encoding can include encoding each channel three times, at respective high, medium and low bit rates. The step of encoding can include encoding each channel at rates selected from the group of substantially 1.5 Mbps, 2 Mbps, 4 Mbps, 6 Mbps, 8.5 Mbps, and 12 Mbps. The step of transmitting the rate encoded signals to a central office can include streaming the rate encoded signals over an IP network where streaming can include multicasting the rate encoded signals for each channel to a plurality of central offices. The step of streaming can include streaming the rate encoded signals on a different IP multicast address.

In another implementation a method is provided for delivering television programming to a subscriber that includes receiving one or more channels of program content, encode each channel a plurality of times, each time at a different rate producing a multiple rate encoded signals for each channel and transmit the multiple rate encoded signals to a central office over a network for distribution to individual subscribers.

In another implementation, a method is provided for delivering television programming to a subscriber including receiving one or more channels of program content, each channel encoded at a plurality of different rates thereby providing multiple rate encoded signals, determining an available bandwidth of a downstream link to a subscriber and a current bit rate available for transmission to the subscriber, selecting a best available bit rate from the multiple rate encoded signals for a requested channel and transmitting the selected rate encoded signal to the subscriber.

In another implementation, an apparatus is provided that includes a termination device including an input interface for receiving one or more channels of program content, each channel encoded at a plurality of different rates thereby providing multiple rate encoded signals, a buffer to buffer the multiple rate encoded signals and a bite rate engine. The bit rate engine is operable to determine an available bandwidth of a downstream link to a subscriber, determine a current bit rate available for transmission to the subscriber, and select a best available bit rate from the multiple rate encoded signals for a requested channel. The apparatus includes a multiplexer operable to combine selected signals for the subscriber and an output interface for transmitting the combined signal to the subscriber.

Aspects of the invention can include one or more of the following features. The apparatus can include a rule set including priority rules for use in determining a best available bit rate from the multiple bit rate encoded signals. The apparatus can include a user bit rate usage database including data indicating a current bit available for transmission to the subscriber.

Implementations can include one or more of the following advantages. A delivery system is provided for offering Telco operators an ability to use there existing, advanced network to offer high quality video and audio services in an optimal manner without compromising their inherent bandwidth constraints. The delivery system provided maximizes the bandwidth available to the consumer (e.g., to the home) based upon the bit rates consumed by each television subscriber in the consumer environment. Unlike a conventional broadcast system that broadcasts all channels at a consistent rate, the delivery system proposed will selectively deliver different rate content to the consumer. In the proposed delivery system, a central distribution location will broadcast content at a plurality of fixed rates to local central office distribution centers. The central office distribution centers are responsible for understanding specific consumer need, and selectively transmitting particular rate content to the individual consumer, and in one implementation, at a highest bit rate based on available bandwidth to the consumer.

In the proposed delivery system, the end subscriber will be able to view at any point in time the highest quality channel of data based upon their current bit rate capacity. In one implementation it was found that statistically, approximately 80% of the subscribers to the delivery system will be viewing the best quality channel available all of the time, the quality level being comparable to or better than conventional satellite and cable delivery systems.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a content delivery system.

FIG. 2 is a block diagram of a rate component of the delivery system.

FIG. 3 is a flow diagram of a method for delivering content to a subscriber.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 shows a content delivery system 100 in which multiple encoders sets 110(1)-110(n) are connected to video/audio (video, audio, or both) sources 120. Each encoder set 110 includes one or more individual encoders 112(1)-112 (n).

Encoders 112(1)-112(n) can be, for example, audio or video encoders that receive and encode input signals 105(1)-105(n) for transmission. Received content (which is subsequently encoded for delivery) can be of the form of television signals representing broadcast channels (e.g., standard or high definition), channel guides, live broadcast feeds, or other content. Encoders 112(1)-112(n) can support various encoding protocols including MPEG-2, H264 and VC-1 codec standards. Encoders 112(1)-112(n) typically can encode and transmit data at multiple bitrates. The bitrate an encoder uses to encode a signal can be varied based on, for example, the complexity of the signal, the available bandwidth in an output channel, or the quality desired or required for the encoded signal. In one implementation, each encoder 112 in a set of encoders 110 encodes the same video/audio/data content at a different constant (or capped) bit rate. For example, in one implementation each encoder set 110 includes three encoders 112 encoding a same received input signal 105 at rates set at 1.5 Mbps (megabits per second), 2.5 Mbps, and 4.0 Mbps for use, for example, with standard definition television signals. For high definition television signals, other bit rate combinations can be used (e.g., 6 Mbps, 8.5 Mbps and 12 Mbps). Other encoding rates can be selected and other numbers of encoders 112 can be included in each encoder set 110. The purpose for the duplicative content encoding will be discussed in greater detail below.

Each encoder 112 receives an input signal 105 (e.g., uncompressed analog or digital audio, video, or data), encodes the input signal 105 using an encoding unit (not shown), and transmits an encoded data message using a transmitter (not shown). The data message can be encoded with a fixed or variable bitrate and can be, for example, a stream of data or a series of discrete packets of data.

As discussed above, plural encoders 112 can be included in each encoder set 110. In one implementation, the bit rates selected for each encoder and combination of bit rates available for a given channel can be determined based on a number of criteria including a content provider's requirement for minimal bit rate, business needs of a service provider, network capability of the service provider and/or other criteria. These criteria may lead a service provider (i.e., the entity providing the delivery system) to define different combinations of bit rate options per channel as well as different numbers of bit rate optional channels. In the implementation described above, plural encoders 112 are contemplated for each channel. Optionally, only a single encoder may be used. Additionally, it should be noted that an encoder set can encode the same channel multiple times on the same physical platform or on separate platforms.

Encoders 112(1)-112(n) transmit encoded data over one or more networks 120(1)-120(n) (only one is shown) to one or more central offices 150(1)-150(n) (again, for the purposes of clarity, only one is shown). In one implementation, each encoder 112(1)-112(n) streams an individual encoded signal over a different internet protocol IP multicast destination address. In this implementation, destination addresses are associated with a given central office 150, so that multiple copies (encoded at different rates) of the audio/video content are delivered to a given central office 150 location. As one of ordinary skill in the art would recognize, streaming to multiple destination addresses (i.e., multicast) is one means of accomplishing the delivery of the encoded content to multiple destinations. Other means including subscription delivery protocols or systems can be used.

Networks 120(1)-120(n) can be internet protocol (IP) networks, other packet switched communication networks or other communication networks. In the content delivery system 100 shown, each encoder 112 communicates with an Ethernet switch 125 that acts as a gateway to a distribution backbone 127 of a network (e.g., distribution backbone of a Telco System) that in turn is coupled to one or more central offices 150. In the implementation shown, redundant switches 125(1) and 125(2) are used to ensure fault tolerant delivery. Alternatively, other communication networks including wide area networks, local area networks, public and private networks or combinations of these can be used to deliver the rate encoded data to the central office(s) 150. In other implementations, each encoder may communicate with a multiplexer that is used to combine the encoded data streams into a single output stream, which can be a constant bit rate stream. The single output stream can then be delivered to the respective destination. A demultiplexer can be included at each destination that is used to separate the individual streams for further processing (e.g., distribution to individual subscribers).

Central office 150 includes one or more termination units. In the implementation shown, central office 150 includes two digital subscriber line access multiplexers (DSLAMs) 160 and a rate component 170). In the implementation shown, a redundant set of DSLAMs 160 and rate components 170 are provided at a central office 150.

DSLAM 160 is a network device at central office 150 that receives signals from multiple customer Digital Subscriber Line (DSL) connections and puts the signals on a high-speed backbone line (e.g., backbone 127) using multiplexing techniques. In the implementation shown, a DSLAM provides termination (i.e., acts as a termination device) at the central office. Other forms of termination devices are possible including optical line termination devices (e.g., for a passive optical network), cable modem termination devices, and the like.

Rate component 170 is operable to identify usage of a specific subscriber (e.g., customer 180) with respect to bit rate consumption and for transmitting (via the termination device) the encoded channel(s) to subscribers based on a current availability of bandwidth. As discussed above, typically the link between the central office 150 and the subscriber has a capacity limit, such limit supporting all of the demands for content in a given subscriber environment. For example, a subscriber may have multiple television sets, including one or more tuners (or virtual tuners, e.g., each being associated with a destination IP address), each of which may be operated and produce a request for content to be delivered from the central office 150. The rate component 170 manages demand (e.g., the numbers of tuners requesting content) and allocated bandwidth (e.g., the subscriber downlink bandwidth) and controls the selection and transmission of encoded channels to a given subscriber. In one implementation, rate component 170 will transmit a highest bit rate encoded channel available (assuming bandwidth to the subscriber is available). As bandwidth is consumed, for example to support multiple demands from a given subscriber, lower bit rate options may be selected for transmission. Rate component 170 manages the transitions between the selection of the various rate encoded signals of the same channel, in one implementation, in real-time. The details of the selection process used by the rate component 170 are discussed in more detail below. In the implementation shown, rate component 170 is in line with, and separate from, the termination device (e.g., DSLAM 160). In one implementation, rate component 170 (including hardware, software, engines, processes, firmware or combinations thereof) or portions thereof are included in the termination device.

Central office 150 is coupled to a plurality of customers 180 by a network 175. Network 175 can be of the form of a packet switched communication network that transfers IP packets addressed accordingly to a given subscriber. Network 175 can be wired (including wire or optical transmission paths), wireless or a combination of both. Network 175 can be a local area network, a wide area network, public network, private network or combinations of these. In the specific example shown, network 175 is provided using a conventional Telco system including loop and aggregation technology as required. Other network connections, i.e., non IP, are possible.

Customer 180 includes a receiver, such as set top box 190. Set top box 190 can include a demultiplexer (not shown) for demultiplexing the received rate encoded signals into channels and one or more decoders 192 (1)-192(n) for decoding the rate encoded signal channels received from the central office 150. In one implementation, the receiver includes a variable bit rate decoder that is capable of decoding the various different bit rate signals that are delivered from the central office. Alternatively, plural decoders can be used to decode the different encoded bit rate signals.

FIG. 2 shows an block diagram of rate component 170 of FIG. 1. Rate component 170 includes an input interface 210, buffer 220, bit rate engine 230, multiplexer 240 and output interface 250.

Input interface 210 is a module that is operable to receive the multiple input channels over network 120. In one implementation, input interface is an IP input interface for receiving IP packets from an IP network. In the simplified implementation shown in FIG. 2, input interface 210 receives three encoded signals associated with a single source including a low, medium and high bit rate input signal. In this example, Channel A (Low Bit Rate) refers to an incoming channel from the central office that has been encoded at a low bit rate, also known as aggressive bit rate. Channel A (Med Bit Rate) refers to the incoming channel from the central office that is encoded at a medium bit rate, also known as average bit rate. Channel A (High Bit Rate) refers to the incoming channel from the central office that is encoded at a high bit rate, also known as non-aggressive bit rate. As discussed above, other numbers of input sources and other numbers and levels of rates can be used.

Buffer 220 is operable to for caching data received. In one implementation, buffer 220 caches a group of pictures, also known as a GOP of a given channel (e.g., of Channel A), and other channels on the network. Buffer 220 can be of the form of a circular buffer that operates to overwrite data on roll over. Depending on a decision made by bit rate engine 230, a portion of the data stored in the buffer 220 can be directed to the output of the rate component 170.

Bit rate engine 230 is operable to decide which bit rate of a requested channel to transmit to the output. The decision can be based upon the current use of the available downlink bandwidth (i.e., the bit rates used for signals currently being transmitted to an end subscriber's home) taking into account the subscriber's current usage and total available bandwidth (i.e., stored in a user bit rate usage database 234), as well as pre-defined business rules which are stored in a rule set 232 associated with the bit rate engine 230. The output of the bit rate engine 230 is a selected bit rate of a requested channel (e.g., Channel A). Once a decision is made, a selected source stream can be requested from the buffer 220 and passed to the multiplexer 240. Details of selection are discussed below.

Multiplexer 240 is operable to multiplex selected data (e.g., selected channels of data, each channel at a selected bit rate based decisions of the bit rate engine 230). In one implementation, multiplexer 240 multiplexes the output of the bit rate engine 230 with other streams. More specifically, multiplexer 240 is used to combine the selected encoded data streams (e.g., a selected Channel A stream, a selected Channel B stream, etc.) into a single output stream, which can be a constant bit rate stream. The single output stream can then be delivered to the respective destination, i.e., the subscriber. A demultiplexer can be included at each destination that is used to separate the individual streams for further processing (e.g., distribution to individual subscriber tuners).

Output interface 250 is operable to process the output stream from the multiplexer to facilitate transmission to the subscriber. In one implementation, output interface 250 is an IP output interface and is operable to encapsulate (e.g., package) the received output stream from the multiplexer 240 into an IP format and transmit the IP packets downstream (e.g., using DSLAM 160) over an IP network to the subscriber.

Referring now to FIG. 3, a method is described for use by the bit rate engine 230 in deciding which input stream to select for downstream transmission. A determination is made as to the level of the current available bandwidth (e.g., bit rate usage) per subscriber (310). Subscriber refers generally here, and throughout this document, as a single point of delivery of data from the central office. The subscriber may have plural devices (e.g., tuners) that are to receive the data and display/play/interact with the content. In one implementation, a subscriber has a plurality of tuners (or virtual tuners associated with an IP address) that request and receive specific data (e.g., a television channel delivered at a particular bit rate). Each tuner may be associated with a receiver which receives the data stream from the central office. Alternatively, each tuner may itself include a receiver. In one implementation the available bandwidth per subscriber is fixed. Alternatively, the available bandwidth per subscriber or for a individual subscriber can vary or be dynamically or otherwise adjusted. For purposes of clarity, only a fixed allocation system is discussed below.

Once the available bandwidth is determined, and based upon the current available bandwidth per subscriber, a decision is made which source channel to select (e.g., which of the different bit rate encoded versions of the same source channel) 320. In one implementation, the rate component 170 offers/provides the source channel with the highest bit rate that does not exceed the overall bit rate available per subscriber. As an example, if a subscriber has access to 10 Mbps, and currently 3 Mbps are in use (due to other previous selections), when a channel is requested, the bit rate engine will select the channel with the highest bit rate that does not exceed the available bit rate (e.g., 7 Mbps).

Thereafter, the selected channel and previously selected data are combined 330 (e.g., by multiplexer 240) and delivered 340 (e.g., through the termination device) to the subscriber. In one implementation, the decision as to what rate data is delivered is a dynamic, in that the available bandwidth can change over the course of time (in either fixed or dynamic allocation implementations). As the available bandwidth changes or in conjunction with periodic or otherwise checks, the decision process as to what rate data is delivered to a subscriber can be re-assessed, resulting in a different rate selection, and necessarily, delivery of different rate data to the subscriber. In the example given above with a 10 Mbps subscriber maximum rate, at a subsequent time, the subscriber may cancel or otherwise designate that the initial 3 Mbps, data is no longer required. At this time, a determination can be made as to whether higher rate data is available to deliver based on previous requests (e.g., previously 6 k Mbps data may have been selected, where 8 Mbps was available due to the 7 Mbps available limitation, and once the available bandwidth limitation was lifted, the higher rate data can then be selected). If available, the higher rate data can be delivered to the subscriber.

As one skilled in the art would recognize, as the total available bandwidth to a given subscriber fills, conflicts may result requiring bit rate engine 230 to prioritize or otherwise decide what combination of requested information is delivered. Ideally, the highest available bit rate data is delivered to the subscriber. When bandwidth limitations prevent the delivery of the highest rates, then one or more priority schemes (e.g., embodied in rules stored in rule set 232) can be used to determine an appropriate combination of rate data to deliver to the subscriber. In one implementation, based on business reasons, operators may decide to prioritize various services. Rule set 232 can include a configuration of business rules that define the priorities for conflict situations. Examples of business rules that can be considered include: priority between high definition and standard definition channels; priority between various content, for example, channel A may have a higher priority than channel B; priority between live broadcast channels and on-demand channels; priority between a channel being recorded by the end user or viewed by the end user; and/or priority based on quality of service purchased by the end user. Other considerations can be applied. In one implementation, the bit rate engine offers the highest bit rate channel based on the defined priorities that does not exceed the overall bandwidth available on the network.

A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. The invention of portions thereof can be implemented in hardware, software, firmware or the like and include discrete or integrated components. Though reference has been made to particular storage structures, termination devices, networks, network components, telephone networks, content and the like, the principals of the present invention are applicable to other structures, devices, networks, content, components and the like. Nothing in this disclosure should be construed as limiting with respect to the applicability of the invention to any particular hardware or other implementation.

Accordingly, other embodiments are within the scope of the following claims. 

1. A method comprising: receiving, at a centralized server, a plurality of encoded signals generated from one or more input signals; determining, at the centralized server, one or more transmission characteristics associated with a subscriber; identifying, at the centralized server, a channel with a highest available bit rate from the plurality of encoded signals based on the one or more transmission characteristics; and transmitting the channel with the highest available bit rate to the subscriber.
 2. The method of claim 1, where determining the one or more transmission characteristics includes determining one or more transmission characteristics associated with a transmission link coupled between the centralized server and the subscriber.
 3. The method of claim 1, where receiving the plurality of encoded signals includes receiving the plurality of encoded signals generated from encoding the one or more input signals a plurality of times, each time at a different rate.
 4. The method of claim 1, further comprising receiving the plurality of encoded signals to the centralized server over an Internet Protocol (IP) network.
 5. The method of claim 1, further comprising: multiplexing the plurality of encoded signals to generate a single encoded output stream; and transmitting the single encoded output stream to the centralized server.
 6. A system comprising: a plurality of encoder sets each having one or more encoders and configured to encode an input signal for generating a plurality of encoded signals for a corresponding channel; and a centralized server configured to: receive the plurality of encoded signals; receive a channel request from a subscriber; determine one or more transmission characteristics associated the subscriber; identify a channel with a suitable bit rate from the plurality of encoded signals based on the one or more transmission characteristics; and transmit the channel with the identified suitable bit rate to the subscriber in response to the channel request.
 7. The system of claim 6, where each encoder in each encoder set encodes the input signal for the corresponding channel using a different encoding bit rate to generate channels with different bit rates.
 8. The system of claim 6, where each encoder set includes a first encoder with a first bit rate, a second encoder with a second bit rate higher than the first bit rate, and a third encoder with a third bit rate higher than the second bit rate, the first encoder, the second encoder, and the third encoder configured to encode each corresponding channel using the first bit rate, the second bit rate, and the third bit rate.
 9. The system of claim 8, where the first bit rate is an aggressive bit rate, the second bit rate is an average bit rate, and the third bit rate is non-aggressive bit rate.
 10. The system of claim 6, where the centralized server includes one or more rate components configured to: identify an available bandwidth associated with the subscriber as one of the one or more transmission characteristics; and identify, based on the identified available bandwidth, the channel with the identified suitable bit rate.
 11. The system of claim 10, where the one or more rate components are configured to: identify a channel with a highest bit rate as the channel with the suitable bit rate; and transmit, in response to the channel request, the identified channel to the subscriber.
 12. The system of claim 10, where the one or more rate components are further configured to determine a current bandwidth in use by the subscriber, and identify the channel with the highest bit rate based on the available bandwidth and the current bandwidth in use by the subscriber.
 13. The system of claim 10, where the one or more rate components include a bit rate engine configured to determine a current available bandwidth per subscriber or bit rate usage per subscriber as the identified available bandwidth.
 14. The system of claim 10, where the one or more rate components include a bit rate engine configured to receive one or more rule sets associated with prioritizing the plurality of encoded signals, and determine an appropriate combination of the plurality of encoded signals for transmission to the subscriber based on the priority.
 15. The system of claim 10, where the one or more rate components are configured to: monitor the available bandwidth; detect a change in the available bandwidth based on the monitoring; and identify a second channel different from the channel with the identified suitable bit rate for transmission to the subscriber in response to the channel request.
 16. The system of claim 15, where, upon detecting a change in the available bandwidth, the one or more rate components are configured to: determine whether a new channel with a bit rate higher than the channel with the suitable bit rate is available; and if so, identify the new channel as the second channel for transmission to the subscriber.
 17. The system of claim 10, where the one or more rate components include a multiplexer to: multiplex a selected encoded channel from each encoder set to generate a single output multiplexed stream; and transmit the single output multiplexed stream to the subscriber to be de-multiplexed.
 18. The system of claim 6, further comprising: a distribution backbone of a telecommunication system to receive the plurality of encoded signals from the plurality of encoder sets, and to send the plurality of encoded signals to the centralized server.
 19. The system of claim 18, where the centralized server includes one or more digital subscriber line access multiplexers to receive subscriber signals from multiple customer digital subscriber lines, and to transfer the subscriber signals to the distribution backbone of the telecommunication system.
 20. The system of claim 18, further comprising: one or more redundant switches coupled between the plurality of encoded sets and the distribution backbone of the telecommunication system to provide fault tolerant delivery of the plurality of encoded signals. 